package com.jl.cloud.consumer.api.config;

import com.jl.cloud.consumer.api.FeignConfigInterceptor;
import feign.Contract;
import feign.Logger;
import feign.Request;
import org.springframework.cloud.openfeign.support.SpringMvcContract;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class TerminalClientConfig {

    /**
     * 配置打印feign调用接口的日志
     */
    @Bean
    public Logger.Level feignLoggerLevel(){
        //full配置比较特殊，需要将spring默认的日志级别info改为debug，否则看不到效果
        return Logger.Level.FULL;
    }

    /**
     * 修改契约配置，支持Feign原生的注解，老版本是不支持springmvc注解的，此处仅作演示，项目中用到的是fegin的注解时，需要切换
     */
    @Bean
    public Contract feignContract(){
        return new SpringMvcContract();
    }

    /**
     * 设置请求feign超时时间
     */
    @Bean
    public Request.Options options() {
        return new Request.Options(5000, 1000);
    }

    /**
     * 进行注入拦截器使用
     */
    @Bean
    public FeignConfigInterceptor feignConfigInterceptor(){
        return new FeignConfigInterceptor();
    }


}
